﻿ using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Planning.Classes;

namespace Planning.Forms
{
    public partial class parametresForm : Form
    {
        #region Construct
        public parametresForm() {
            InitializeComponent(); 

            // Valorise les champs avec les paramètres stockés
            adrBaseText.Text = Properties.Settings.Default.adrBase;
            nomBaseText.Text = Properties.Settings.Default.nomBase;
            userBaseText.Text = Properties.Settings.Default.userBase;
            pwdBaseText.Text = Properties.Settings.Default.pwdBase;
            pwdBaseText.Text = Properties.Settings.Default.pwdBase;
            checkSQL.Checked = Properties.Settings.Default.erreurSQL;
            formationHauteurText.Text = Properties.Settings.Default.formationHauteur.ToString();
            formationLargeurText.Text = Properties.Settings.Default.formationLargeur.ToString();
            formationInitialXText.Text = Properties.Settings.Default.formationInitialX.ToString();
            formationInitialYText.Text = Properties.Settings.Default.formationInitialY.ToString();
            largeurSeparationText.Text = Properties.Settings.Default.largeurSeparation.ToString();
            hauteurSeparationText.Text = Properties.Settings.Default.hauteurSeparation.ToString();
        }
        #endregion

        #region Clics
        private void valider_Click(object sender, EventArgs e) {
            // Valorise les changements dans le fichier de paramètres
            Properties.Settings.Default.adrBase = adrBaseText.Text;
            Properties.Settings.Default.nomBase = nomBaseText.Text;
            Properties.Settings.Default.userBase = userBaseText.Text;
            Properties.Settings.Default.pwdBase = pwdBaseText.Text;
            Properties.Settings.Default.erreurSQL = checkSQL.Checked;

            Properties.Settings.Default.formationHauteur = Convert.ToInt32(formationHauteurText.Text);
            Properties.Settings.Default.formationLargeur = Convert.ToInt32(formationLargeurText.Text);
            Properties.Settings.Default.formationInitialX = Convert.ToInt32(formationInitialXText.Text);
            Properties.Settings.Default.formationInitialY = Convert.ToInt32(formationInitialYText.Text);
            Properties.Settings.Default.largeurSeparation = Convert.ToInt32(largeurSeparationText.Text);
            Properties.Settings.Default.hauteurSeparation = Convert.ToInt32(hauteurSeparationText.Text);
            // Sauvegarde les modifications dans le fichier de paramètres
            Properties.Settings.Default.Save();

            this.Dispose();
        }

        private void tester_Click(object sender, EventArgs e) {
            // Sauvegarde les propriétés de la base
            string adrBase = Properties.Settings.Default.adrBase;
            string nomBase= Properties.Settings.Default.nomBase;
            string userBase = Properties.Settings.Default.userBase;
            string pwdBase = Properties.Settings.Default.pwdBase;

            // Valorise les propriétés avec les attributs acutels
            Properties.Settings.Default.adrBase = adrBaseText.Text;
            Properties.Settings.Default.nomBase = nomBaseText.Text;
            Properties.Settings.Default.userBase = userBaseText.Text;
            Properties.Settings.Default.pwdBase = pwdBaseText.Text;
            // Sauvgarde les propriétés
            Properties.Settings.Default.Save();

            // Vérifie si la connexion fonctionne
            if (SQL.test()) {
                MessageBox.Show("La connexion a été effectuée avec succès");
            }
            else if (checkSQL.Checked) {
                MessageBox.Show("La connexion à la base de données à échouée ... " + SQL.e);
            }
            else {
                MessageBox.Show("La connexion à la base de données à échouée ...");
            }

            // Restaure les propriétés
            Properties.Settings.Default.adrBase = adrBase;
            Properties.Settings.Default.nomBase = nomBase;
            Properties.Settings.Default.userBase = userBase;
            Properties.Settings.Default.pwdBase = pwdBase;
            // Sauvegarde les propriétés
            Properties.Settings.Default.Save();
        }

        private void annuler_Click(object sender, EventArgs e) {
            // Ferme la fenêtre
            this.Dispose();
        }

        private void formationDefault_Click(object sender, EventArgs e) {
            // Valorise les champs avec les paramètres par defaut
            formationHauteurText.Text = "87";
            formationLargeurText.Text = "119";
            formationInitialXText.Text = "24";
            formationInitialYText.Text = "2";
            largeurSeparationText.Text = "0";
            hauteurSeparationText.Text = "0";
        }
        #endregion
    }
}
